package com.java.star.mall.front.service;

import com.java.star.mall.common.response.JsonPage;
import com.java.star.mall.front.pojo.param.AckOrderParam;
import com.java.star.mall.front.pojo.param.OrderParam;
import com.java.star.mall.front.pojo.param.OrderQueryParam;
import com.java.star.mall.front.pojo.vo.AckOrderInfoVO;
import com.java.star.mall.front.pojo.vo.OrderListVO;
import com.java.star.mall.front.pojo.vo.OrderVO;
import com.java.star.mall.front.pojo.vo.SubmitOrderVO;

/**
 * 订单Service
 */
public interface OrderService {

    /**
     * 获取订单确认页信息
     *
     * @param ackOrderParam 确认参数
     * @return 订单确认VO
     */
    AckOrderInfoVO getAckOrderInfo(AckOrderParam ackOrderParam);

    /**
     * 提交订单
     *
     * @param orderParam 订单参数
     * @return 订单提交VO
     */
    SubmitOrderVO submitOrder(OrderParam orderParam);

    /**
     * 根据订单号查询订单详情
     *
     * @param orderSn 订单号
     * @return 订单VO
     */
    OrderVO getOrderByOrderSn(String orderSn);

    /**
     * 查询订单列表
     *
     * @param orderQueryParam 查询参数
     * @return 分页订单列表VO
     */
    JsonPage<OrderListVO> listOrder(OrderQueryParam orderQueryParam);
}
